#include "stm32f10x.h"                  // Device header
#include <stdio.h>
#include "Delay.h"
#include "OLED.h"
#include "Timer.h"
#include "Encoder.h"
#include "Delay.h"
#include "GPS_LUXIAN.h"
#include "car.h"
#include "duoji.h"
#include "Serial.h"
#include "xieyi.h"
#include "control.h"
#include "task_demo.h"
#include "MPU6050.h"
#include "inv_mpu.h"
#include "IC.h"

#include "Usart_GPS.h"

//编码器：PA0、PA1、PA6、PA7
//PWM:PC6、PC7、PC8和PC9
//OLED：PE2、PE3

float Pitch, Roll, Yaw; //俯仰角，翻滚角，偏航角

int main(void)
{
	//UART2_DMA_Init();
	
	IC_Init();
	Serial_Init();
	//Usart2_Init();
	OLED_Init();
//	MPU6050_Init();
//	MPU6050_DMP_Init();
//----------------------
	//控制操作初始化
	control_init();
//----------------------
	//freertos_demo();
	
	while (1)
	{
		
		if(change_flag == 0)
		{
			control_serial();
		}
		if(change_flag == 1)
		{
//			MPU6050_DMP_Get_Data(&Pitch,&Roll,&Yaw);
//			//乘以100再乘100，是为了上传后两位小数上去。
			usartSendData((short)(TIM3_speed_Get()*10000), (short)(TIM5_speed_Get()*10000),(short)0,1);//发送左右轮和角度给上位机
			Delay_ms(20);
		}
	}
}












//	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能时钟（要用什么寄存器就使能对应的时钟（用到时钟门控技术））
//	GPIO_SetBits(GPIOA,GPIO_Pin_8);
//	GPIO_ResetBits(GPIOA,GPIO_Pin_8);//低电平（PA8LED是低电平点亮）
